Skill

জাভাস্ক্রিপ্ট ফর্ম (JS Form)

Web Development- জাভাস্ক্রিপ্ট (JavaScript) - জাভাস্ক্রিপ্ট ফর্ম (JS Form) -
313
313

জাভাস্ক্রিপ্ট ফর্ম হলো ওয়েব পেজে ব্যবহারকারীর কাছ থেকে তথ্য সংগ্রহ করার একটি উপায়। ফর্মের মাধ্যমে ব্যবহারকারী বিভিন্ন ইনপুট যেমন টেক্সট, পাসওয়ার্ড, বাটন, চেকবক্স, রেডিও বাটন ইত্যাদি প্রদান করতে পারে। জাভাস্ক্রিপ্ট ফর্মের সাথে ইন্টারঅ্যাক্ট করে এই ইনপুটগুলোকে প্রক্রিয়াজাত করতে, যাচাই করতে এবং সার্ভারে পাঠাতে সহায়তা করে।


ফর্মের উপাদানসমূহ

ইনপুট এলিমেন্ট (Input Elements)

ফর্মের মূল উপাদান হলো ইনপুট এলিমেন্ট, যা বিভিন্ন ধরনের তথ্য সংগ্রহ করতে ব্যবহৃত হয়।

  • টেক্সট ইনপুট: ব্যবহারকারীর কাছ থেকে টেক্সট তথ্য সংগ্রহ করে।

    <input type="text" id="username" name="username" placeholder="আপনার নাম লিখুন">
    
  • পাসওয়ার্ড ইনপুট: ব্যবহারকারীর পাসওয়ার্ড লুকিয়ে রাখে।

    <input type="password" id="password" name="password" placeholder="পাসওয়ার্ড লিখুন">
    
  • বাটন: ফর্ম জমা দিতে বা অন্য কোনো কাজ করতে ব্যবহৃত হয়।

    <button type="submit">জমা দিন</button>
    
  • চেকবক্স: একাধিক অপশন থেকে নির্বাচন করতে ব্যবহৃত হয়।

    <input type="checkbox" id="subscribe" name="subscribe" value="newsletter">
    <label for="subscribe">নিউজলেটার সাবস্ক্রাইব করুন</label>
    
  • রেডিও বাটন: একাধিক অপশন থেকে একটি নির্বাচন করতে ব্যবহৃত হয়।

    <input type="radio" id="male" name="gender" value="male">
    <label for="male">পুরুষ</label>
    <input type="radio" id="female" name="gender" value="female">
    <label for="female">মহিলা</label>
    

সিলেক্ট এলিমেন্ট (Select Element)

ড্রপ-ডাউন মেনু তৈরি করতে ব্যবহৃত হয়, যেখানে ব্যবহারকারী একাধিক অপশন থেকে একটি নির্বাচন করতে পারে।

<select id="country" name="country">
    <option value="bd">বাংলাদেশ</option>
    <option value="usa">যুক্তরাষ্ট্র</option>
    <option value="uk">যুক্তরাজ্য</option>
</select>

টেক্সটএরিয়া (Textarea)

বৃহত্তর টেক্সট ইনপুটের জন্য ব্যবহৃত হয়, যেমন মন্তব্য বা বিস্তারিত বিবরণ।

<textarea id="message" name="message" rows="4" cols="50" placeholder="আপনার মন্তব্য লিখুন"></textarea>

ফর্মের সাথে জাভাস্ক্রিপ্টের ইন্টারঅ্যাকশন

জাভাস্ক্রিপ্ট ফর্মের সাথে ইন্টারঅ্যাক্ট করে ব্যবহারকারীর ইনপুট সংগ্রহ, যাচাই এবং প্রক্রিয়াজাত করতে সাহায্য করে। নিচে ফর্মের সাথে জাভাস্ক্রিপ্টের বিভিন্ন উপায় আলোচনা করা হলো।

ফর্ম সাবমিশন হ্যান্ডল করা

ফর্ম জমা দেওয়া হলে জাভাস্ক্রিপ্ট ফাংশন কল করে তার ইনপুট প্রক্রিয়াজাত করা যায়।

<form id="myForm">
    <input type="text" id="username" name="username" placeholder="আপনার নাম লিখুন" required>
    <input type="password" id="password" name="password" placeholder="পাসওয়ার্ড লিখুন" required>
    <button type="submit">জমা দিন</button>
</form>

<script>
    const form = document.getElementById('myForm');

    form.addEventListener('submit', function(event) {
        event.preventDefault(); // ফর্মের ডিফল্ট সাবমিশন রোধ করা

        const username = document.getElementById('username').value;
        const password = document.getElementById('password').value;

        console.log('ব্যবহারকারীর নাম:', username);
        console.log('পাসওয়ার্ড:', password);

        // এখান থেকে আপনি সার্ভারে ডেটা পাঠাতে পারেন বা অন্য কোনো প্রক্রিয়া করতে পারেন
    });
</script>

ইনপুট ভ্যালিডেশন (Input Validation)

ব্যবহারকারীর ইনপুট সঠিক কিনা যাচাই করতে জাভাস্ক্রিপ্ট ব্যবহার করা হয়। এটি নিশ্চিত করে যে ইনপুট ডেটা নির্ভরযোগ্য এবং নিরাপদ।

<form id="registrationForm">
    <input type="email" id="email" name="email" placeholder="ইমেইল লিখুন" required>
    <input type="password" id="password" name="password" placeholder="পাসওয়ার্ড লিখুন" required>
    <button type="submit">রেজিস্টার করুন</button>
</form>

<script>
    const registrationForm = document.getElementById('registrationForm');

    registrationForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const email = document.getElementById('email').value;
        const password = document.getElementById('password').value;

        if (!validateEmail(email)) {
            alert('সঠিক ইমেইল ঠিকানা প্রদান করুন।');
            return;
        }

        if (password.length < 6) {
            alert('পাসওয়ার্ড কমপক্ষে ৬ অক্ষর দীর্ঘ হতে হবে।');
            return;
        }

        console.log('ইমেইল:', email);
        console.log('পাসওয়ার্ড:', password);

        // ডেটা সাবমিট করার জন্য AJAX বা Fetch API ব্যবহার করুন
    });

    function validateEmail(email) {
        const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
        return re.test(String(email).toLowerCase());
    }
</script>

ফর্মের ইনপুট এক্সেস করা

জাভাস্ক্রিপ্ট ব্যবহার করে ফর্মের ইনপুট এলিমেন্টগুলোকে এক্সেস করা যায় এবং তাদের মান পরিবর্তন করা যায়।

<form id="profileForm">
    <input type="text" id="firstName" name="firstName" placeholder="প্রথম নাম" required>
    <input type="text" id="lastName" name="lastName" placeholder="শেষ নাম" required>
    <button type="button" onclick="fillForm()">ফর্ম পূরণ করুন</button>
</form>

<script>
    function fillForm() {
        document.getElementById('firstName').value = 'আলম';
        document.getElementById('lastName').value = 'হোসেন';
    }
</script>

AJAX ব্যবহার করে ফর্ম ডেটা সাবমিট করা

AJAX (Asynchronous JavaScript and XML) ব্যবহার করে ফর্ম ডেটা সার্ভারে পাঠানো যায়, যেখানে পেজ রিফ্রেশ ছাড়াই ডেটা প্রক্রিয়াজাত করা হয়।

<form id="contactForm">
    <input type="text" id="name" name="name" placeholder="আপনার নাম" required>
    <input type="email" id="email" name="email" placeholder="আপনার ইমেইল" required>
    <textarea id="message" name="message" placeholder="আপনার বার্তা" required></textarea>
    <button type="submit">পাঠান</button>
</form>

<script>
    const contactForm = document.getElementById('contactForm');

    contactForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const name = document.getElementById('name').value;
        const email = document.getElementById('email').value;
        const message = document.getElementById('message').value;

        const data = { name, email, message };

        fetch('https://example.com/api/contact', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(data)
        })
        .then(response => response.json())
        .then(result => {
            console.log('সফলতা:', result);
            alert('আপনার বার্তা পাঠানো হয়েছে!');
            contactForm.reset();
        })
        .catch(error => {
            console.error('ত্রুটি:', error);
            alert('বার্তা পাঠাতে সমস্যা হয়েছে।');
        });
    });
</script>

ফর্ম ডেটার যাচাই ও নিরাপত্তা

ফর্মের ডেটা যাচাই করা খুবই গুরুত্বপূর্ণ যাতে তা নিরাপদ ও নির্ভরযোগ্য হয়।

ক্লায়েন্ট-সাইড ভ্যালিডেশন

ক্লায়েন্ট-সাইডে ইনপুট যাচাই করে ব্যবহারকারীর অভিজ্ঞতা উন্নত করা যায়।

<form id="signupForm">
    <input type="text" id="username" name="username" placeholder="ইউজারনেম" required>
    <input type="password" id="password" name="password" placeholder="পাসওয়ার্ড" required>
    <button type="submit">সাইন আপ করুন</button>
</form>

<script>
    const signupForm = document.getElementById('signupForm');

    signupForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const username = document.getElementById('username').value.trim();
        const password = document.getElementById('password').value.trim();

        if (username.length < 3) {
            alert('ইউজারনেম কমপক্ষে ৩ অক্ষর দীর্ঘ হতে হবে।');
            return;
        }

        if (password.length < 6) {
            alert('পাসওয়ার্ড কমপক্ষে ৬ অক্ষর দীর্ঘ হতে হবে।');
            return;
        }

        // ডেটা সার্ভারে পাঠানোর জন্য AJAX বা Fetch API ব্যবহার করুন
        console.log('ইউজারনেম:', username);
        console.log('পাসওয়ার্ড:', password);
    });
</script>

সার্ভার-সাইড ভ্যালিডেশন

ক্লায়েন্ট-সাইড যাচাইয়ের পাশাপাশি সার্ভার-সাইডেও ডেটা যাচাই করা উচিত যাতে নিরাপত্তা নিশ্চিত হয় এবং ম্যালিশিয়াস ইনপুট এড়ানো যায়।

// Node.js উদাহরণ
const express = require('express');
const app = express();

app.use(express.json());

app.post('/api/signup', (req, res) => {
    const { username, password } = req.body;

    if (!username || username.length < 3) {
        return res.status(400).json({ error: 'ইউজারনেম কমপক্ষে ৩ অক্ষর দীর্ঘ হতে হবে।' });
    }

    if (!password || password.length < 6) {
        return res.status(400).json({ error: 'পাসওয়ার্ড কমপক্ষে ৬ অক্ষর দীর্ঘ হতে হবে।' });
    }

    // ইউজার ডেটাবেসে সংরক্ষণ বা অন্যান্য প্রক্রিয়া

    res.status(200).json({ message: 'সাইন আপ সফল হয়েছে!' });
});

app.listen(3000, () => {
    console.log('সার্ভার চালু হয়েছে পোর্ট 3000 এ');
});

ফর্মের ইনপুট নিয়ন্ত্রণ এবং ম্যানিপুলেশন

জাভাস্ক্রিপ্ট ব্যবহার করে ফর্মের ইনপুট নিয়ন্ত্রণ এবং তাদের মান পরিবর্তন করা যায়, যেমন ইনপুট লক করা বা ডাইনামিকলি ইনপুট যোগ করা।

ইনপুট লক করা

কিছু ইনপুট এলিমেন্টকে লক করে দেয়া যায় যাতে ব্যবহারকারী সেগুলো পরিবর্তন করতে না পারে।

<input type="text" id="fixedInput" value="স্থায়ী মান" readonly>

ডাইনামিক ইনপুট যোগ করা

জাভাস্ক্রিপ্টের মাধ্যমে ফর্মে নতুন ইনপুট এলিমেন্ট যোগ করা যায়।

<form id="dynamicForm">
    <button type="button" onclick="addInput()">নতুন ইনপুট যোগ করুন</button>
    <div id="inputContainer"></div>
    <button type="submit">জমা দিন</button>
</form>

<script>
    function addInput() {
        const container = document.getElementById('inputContainer');
        const input = document.createElement('input');
        input.type = 'text';
        input.name = 'dynamicInput';
        input.placeholder = 'নতুন ইনপুট';
        container.appendChild(input);
    }
</script>

ফর্মের ডেটা স্টোরেজ

ফর্মের ডেটা স্থানীয়ভাবে বা ব্রাউজারে স্টোরেজ করতে জাভাস্ক্রিপ্ট ব্যবহার করা যায়।

লোকালস্টোরেজ (LocalStorage)

লোকালস্টোরেজ ব্যবহার করে ডেটা ব্রাউজারে স্টোর করা যায় যা ব্রাউজার বন্ধ করলেও থাকে।

<form id="saveForm">
    <input type="text" id="dataInput" name="dataInput" placeholder="ডেটা লিখুন" required>
    <button type="submit">সেভ করুন</button>
</form>

<script>
    const saveForm = document.getElementById('saveForm');

    saveForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const data = document.getElementById('dataInput').value;
        localStorage.setItem('savedData', data);

        alert('ডেটা সেভ করা হয়েছে!');
    });

    // পেজ লোড হলে ডেটা লোড করা
    window.addEventListener('load', function() {
        const savedData = localStorage.getItem('savedData');
        if (savedData) {
            document.getElementById('dataInput').value = savedData;
        }
    });
</script>

সেশনস্টোরেজ (SessionStorage)

সেশনস্টোরেজ ব্যবহার করে ডেটা ব্রাউজার সেশন পর্যন্ত স্টোর করা যায়, যা ব্রাউজার ট্যাব বন্ধ করলে মুছে যায়।

<form id="sessionForm">
    <input type="text" id="sessionData" name="sessionData" placeholder="সেশন ডেটা লিখুন" required>
    <button type="submit">সেভ করুন</button>
</form>

<script>
    const sessionForm = document.getElementById('sessionForm');

    sessionForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const data = document.getElementById('sessionData').value;
        sessionStorage.setItem('sessionData', data);

        alert('সেশন ডেটা সেভ করা হয়েছে!');
    });

    // পেজ লোড হলে সেশন ডেটা লোড করা
    window.addEventListener('load', function() {
        const sessionData = sessionStorage.getItem('sessionData');
        if (sessionData) {
            document.getElementById('sessionData').value = sessionData;
        }
    });
</script>

রিয়্যাক্টিভ ফর্ম (Reactive Forms)

জাভাস্ক্রিপ্ট ফর্মের সাথে ইন্টারঅ্যাক্ট করে রিয়্যাক্টিভ ফর্ম তৈরি করা যায়, যেখানে ইনপুটের পরিবর্তনের সাথে সাথে ডেটা আপডেট হয়।

<form id="reactiveForm">
    <input type="text" id="firstName" name="firstName" placeholder="প্রথম নাম" required>
    <input type="text" id="lastName" name="lastName" placeholder="শেষ নাম" required>
    <p>আপনার পূর্ণ নাম: <span id="fullName"></span></p>
</form>

<script>
    const firstNameInput = document.getElementById('firstName');
    const lastNameInput = document.getElementById('lastName');
    const fullNameDisplay = document.getElementById('fullName');

    function updateFullName() {
        const firstName = firstNameInput.value.trim();
        const lastName = lastNameInput.value.trim();
        fullNameDisplay.textContent = `${firstName} ${lastName}`;
    }

    firstNameInput.addEventListener('input', updateFullName);
    lastNameInput.addEventListener('input', updateFullName);
</script>

সারাংশ

জাভাস্ক্রিপ্ট ফর্ম হলো ওয়েব ডেভেলপমেন্টে একটি গুরুত্বপূর্ণ উপাদান যা ব্যবহারকারীর কাছ থেকে তথ্য সংগ্রহ করে। ফর্মের বিভিন্ন ইনপুট এলিমেন্ট, ফর্ম ইভেন্ট হ্যান্ডলিং, ইনপুট ভ্যালিডেশন, AJAX ব্যবহার করে ডেটা সাবমিট করা, এবং ডেটা স্টোরেজের মাধ্যমে ফর্ম ডেটাকে কার্যকরভাবে প্রক্রিয়াজাত করা যায়। ফর্ম ডিবাগিং এবং নিরাপত্তা নিশ্চিত করতে ক্লায়েন্ট-সাইড ও সার্ভার-সাইড ভ্যালিডেশন গুরুত্বপূর্ণ। রিয়্যাক্টিভ ফর্ম তৈরি করে ফর্মের সাথে আরও ইন্টারঅ্যাকটিভ এবং ইউজার ফ্রেন্ডলি অভিজ্ঞতা প্রদান করা সম্ভব। সঠিকভাবে ফর্ম পরিচালনা করলে ওয়েব অ্যাপ্লিকেশন আরও কার্যকর, নিরাপদ এবং ব্যবহারকারীর জন্য সহজ হয়।

ফর্ম ব্যবহারে জাভাস্ক্রিপ্টের দক্ষতা অর্জন করে আপনি আরও উন্নত এবং নির্ভরযোগ্য ওয়েব অ্যাপ্লিকেশন তৈরি করতে সক্ষম হবেন, যা ব্যবহারকারীদের জন্য মসৃণ এবং সুষ্ঠু অভিজ্ঞতা প্রদান করে।

জাভাস্ক্রিপ্ট ফর্ম হলো ওয়েব পেজে ব্যবহারকারীর কাছ থেকে তথ্য সংগ্রহ করার একটি উপায়। ফর্মের মাধ্যমে ব্যবহারকারী বিভিন্ন ইনপুট যেমন টেক্সট, পাসওয়ার্ড, বাটন, চেকবক্স, রেডিও বাটন ইত্যাদি প্রদান করতে পারে। জাভাস্ক্রিপ্ট ফর্মের সাথে ইন্টারঅ্যাক্ট করে এই ইনপুটগুলোকে প্রক্রিয়াজাত করতে, যাচাই করতে এবং সার্ভারে পাঠাতে সহায়তা করে।


ফর্মের উপাদানসমূহ

ইনপুট এলিমেন্ট (Input Elements)

ফর্মের মূল উপাদান হলো ইনপুট এলিমেন্ট, যা বিভিন্ন ধরনের তথ্য সংগ্রহ করতে ব্যবহৃত হয়।

  • টেক্সট ইনপুট: ব্যবহারকারীর কাছ থেকে টেক্সট তথ্য সংগ্রহ করে।

    <input type="text" id="username" name="username" placeholder="আপনার নাম লিখুন">
    
  • পাসওয়ার্ড ইনপুট: ব্যবহারকারীর পাসওয়ার্ড লুকিয়ে রাখে।

    <input type="password" id="password" name="password" placeholder="পাসওয়ার্ড লিখুন">
    
  • বাটন: ফর্ম জমা দিতে বা অন্য কোনো কাজ করতে ব্যবহৃত হয়।

    <button type="submit">জমা দিন</button>
    
  • চেকবক্স: একাধিক অপশন থেকে নির্বাচন করতে ব্যবহৃত হয়।

    <input type="checkbox" id="subscribe" name="subscribe" value="newsletter">
    <label for="subscribe">নিউজলেটার সাবস্ক্রাইব করুন</label>
    
  • রেডিও বাটন: একাধিক অপশন থেকে একটি নির্বাচন করতে ব্যবহৃত হয়।

    <input type="radio" id="male" name="gender" value="male">
    <label for="male">পুরুষ</label>
    <input type="radio" id="female" name="gender" value="female">
    <label for="female">মহিলা</label>
    

সিলেক্ট এলিমেন্ট (Select Element)

ড্রপ-ডাউন মেনু তৈরি করতে ব্যবহৃত হয়, যেখানে ব্যবহারকারী একাধিক অপশন থেকে একটি নির্বাচন করতে পারে।

<select id="country" name="country">
    <option value="bd">বাংলাদেশ</option>
    <option value="usa">যুক্তরাষ্ট্র</option>
    <option value="uk">যুক্তরাজ্য</option>
</select>

টেক্সটএরিয়া (Textarea)

বৃহত্তর টেক্সট ইনপুটের জন্য ব্যবহৃত হয়, যেমন মন্তব্য বা বিস্তারিত বিবরণ।

<textarea id="message" name="message" rows="4" cols="50" placeholder="আপনার মন্তব্য লিখুন"></textarea>

ফর্মের সাথে জাভাস্ক্রিপ্টের ইন্টারঅ্যাকশন

জাভাস্ক্রিপ্ট ফর্মের সাথে ইন্টারঅ্যাক্ট করে ব্যবহারকারীর ইনপুট সংগ্রহ, যাচাই এবং প্রক্রিয়াজাত করতে সাহায্য করে। নিচে ফর্মের সাথে জাভাস্ক্রিপ্টের বিভিন্ন উপায় আলোচনা করা হলো।

ফর্ম সাবমিশন হ্যান্ডল করা

ফর্ম জমা দেওয়া হলে জাভাস্ক্রিপ্ট ফাংশন কল করে তার ইনপুট প্রক্রিয়াজাত করা যায়।

<form id="myForm">
    <input type="text" id="username" name="username" placeholder="আপনার নাম লিখুন" required>
    <input type="password" id="password" name="password" placeholder="পাসওয়ার্ড লিখুন" required>
    <button type="submit">জমা দিন</button>
</form>

<script>
    const form = document.getElementById('myForm');

    form.addEventListener('submit', function(event) {
        event.preventDefault(); // ফর্মের ডিফল্ট সাবমিশন রোধ করা

        const username = document.getElementById('username').value;
        const password = document.getElementById('password').value;

        console.log('ব্যবহারকারীর নাম:', username);
        console.log('পাসওয়ার্ড:', password);

        // এখান থেকে আপনি সার্ভারে ডেটা পাঠাতে পারেন বা অন্য কোনো প্রক্রিয়া করতে পারেন
    });
</script>

ইনপুট ভ্যালিডেশন (Input Validation)

ব্যবহারকারীর ইনপুট সঠিক কিনা যাচাই করতে জাভাস্ক্রিপ্ট ব্যবহার করা হয়। এটি নিশ্চিত করে যে ইনপুট ডেটা নির্ভরযোগ্য এবং নিরাপদ।

<form id="registrationForm">
    <input type="email" id="email" name="email" placeholder="ইমেইল লিখুন" required>
    <input type="password" id="password" name="password" placeholder="পাসওয়ার্ড লিখুন" required>
    <button type="submit">রেজিস্টার করুন</button>
</form>

<script>
    const registrationForm = document.getElementById('registrationForm');

    registrationForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const email = document.getElementById('email').value;
        const password = document.getElementById('password').value;

        if (!validateEmail(email)) {
            alert('সঠিক ইমেইল ঠিকানা প্রদান করুন।');
            return;
        }

        if (password.length < 6) {
            alert('পাসওয়ার্ড কমপক্ষে ৬ অক্ষর দীর্ঘ হতে হবে।');
            return;
        }

        console.log('ইমেইল:', email);
        console.log('পাসওয়ার্ড:', password);

        // ডেটা সাবমিট করার জন্য AJAX বা Fetch API ব্যবহার করুন
    });

    function validateEmail(email) {
        const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
        return re.test(String(email).toLowerCase());
    }
</script>

ফর্মের ইনপুট এক্সেস করা

জাভাস্ক্রিপ্ট ব্যবহার করে ফর্মের ইনপুট এলিমেন্টগুলোকে এক্সেস করা যায় এবং তাদের মান পরিবর্তন করা যায়।

<form id="profileForm">
    <input type="text" id="firstName" name="firstName" placeholder="প্রথম নাম" required>
    <input type="text" id="lastName" name="lastName" placeholder="শেষ নাম" required>
    <button type="button" onclick="fillForm()">ফর্ম পূরণ করুন</button>
</form>

<script>
    function fillForm() {
        document.getElementById('firstName').value = 'আলম';
        document.getElementById('lastName').value = 'হোসেন';
    }
</script>

AJAX ব্যবহার করে ফর্ম ডেটা সাবমিট করা

AJAX (Asynchronous JavaScript and XML) ব্যবহার করে ফর্ম ডেটা সার্ভারে পাঠানো যায়, যেখানে পেজ রিফ্রেশ ছাড়াই ডেটা প্রক্রিয়াজাত করা হয়।

<form id="contactForm">
    <input type="text" id="name" name="name" placeholder="আপনার নাম" required>
    <input type="email" id="email" name="email" placeholder="আপনার ইমেইল" required>
    <textarea id="message" name="message" placeholder="আপনার বার্তা" required></textarea>
    <button type="submit">পাঠান</button>
</form>

<script>
    const contactForm = document.getElementById('contactForm');

    contactForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const name = document.getElementById('name').value;
        const email = document.getElementById('email').value;
        const message = document.getElementById('message').value;

        const data = { name, email, message };

        fetch('https://example.com/api/contact', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify(data)
        })
        .then(response => response.json())
        .then(result => {
            console.log('সফলতা:', result);
            alert('আপনার বার্তা পাঠানো হয়েছে!');
            contactForm.reset();
        })
        .catch(error => {
            console.error('ত্রুটি:', error);
            alert('বার্তা পাঠাতে সমস্যা হয়েছে।');
        });
    });
</script>

ফর্ম ডেটার যাচাই ও নিরাপত্তা

ফর্মের ডেটা যাচাই করা খুবই গুরুত্বপূর্ণ যাতে তা নিরাপদ ও নির্ভরযোগ্য হয়।

ক্লায়েন্ট-সাইড ভ্যালিডেশন

ক্লায়েন্ট-সাইডে ইনপুট যাচাই করে ব্যবহারকারীর অভিজ্ঞতা উন্নত করা যায়।

<form id="signupForm">
    <input type="text" id="username" name="username" placeholder="ইউজারনেম" required>
    <input type="password" id="password" name="password" placeholder="পাসওয়ার্ড" required>
    <button type="submit">সাইন আপ করুন</button>
</form>

<script>
    const signupForm = document.getElementById('signupForm');

    signupForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const username = document.getElementById('username').value.trim();
        const password = document.getElementById('password').value.trim();

        if (username.length < 3) {
            alert('ইউজারনেম কমপক্ষে ৩ অক্ষর দীর্ঘ হতে হবে।');
            return;
        }

        if (password.length < 6) {
            alert('পাসওয়ার্ড কমপক্ষে ৬ অক্ষর দীর্ঘ হতে হবে।');
            return;
        }

        // ডেটা সার্ভারে পাঠানোর জন্য AJAX বা Fetch API ব্যবহার করুন
        console.log('ইউজারনেম:', username);
        console.log('পাসওয়ার্ড:', password);
    });
</script>

সার্ভার-সাইড ভ্যালিডেশন

ক্লায়েন্ট-সাইড যাচাইয়ের পাশাপাশি সার্ভার-সাইডেও ডেটা যাচাই করা উচিত যাতে নিরাপত্তা নিশ্চিত হয় এবং ম্যালিশিয়াস ইনপুট এড়ানো যায়।

// Node.js উদাহরণ
const express = require('express');
const app = express();

app.use(express.json());

app.post('/api/signup', (req, res) => {
    const { username, password } = req.body;

    if (!username || username.length < 3) {
        return res.status(400).json({ error: 'ইউজারনেম কমপক্ষে ৩ অক্ষর দীর্ঘ হতে হবে।' });
    }

    if (!password || password.length < 6) {
        return res.status(400).json({ error: 'পাসওয়ার্ড কমপক্ষে ৬ অক্ষর দীর্ঘ হতে হবে।' });
    }

    // ইউজার ডেটাবেসে সংরক্ষণ বা অন্যান্য প্রক্রিয়া

    res.status(200).json({ message: 'সাইন আপ সফল হয়েছে!' });
});

app.listen(3000, () => {
    console.log('সার্ভার চালু হয়েছে পোর্ট 3000 এ');
});

ফর্মের ইনপুট নিয়ন্ত্রণ এবং ম্যানিপুলেশন

জাভাস্ক্রিপ্ট ব্যবহার করে ফর্মের ইনপুট নিয়ন্ত্রণ এবং তাদের মান পরিবর্তন করা যায়, যেমন ইনপুট লক করা বা ডাইনামিকলি ইনপুট যোগ করা।

ইনপুট লক করা

কিছু ইনপুট এলিমেন্টকে লক করে দেয়া যায় যাতে ব্যবহারকারী সেগুলো পরিবর্তন করতে না পারে।

<input type="text" id="fixedInput" value="স্থায়ী মান" readonly>

ডাইনামিক ইনপুট যোগ করা

জাভাস্ক্রিপ্টের মাধ্যমে ফর্মে নতুন ইনপুট এলিমেন্ট যোগ করা যায়।

<form id="dynamicForm">
    <button type="button" onclick="addInput()">নতুন ইনপুট যোগ করুন</button>
    <div id="inputContainer"></div>
    <button type="submit">জমা দিন</button>
</form>

<script>
    function addInput() {
        const container = document.getElementById('inputContainer');
        const input = document.createElement('input');
        input.type = 'text';
        input.name = 'dynamicInput';
        input.placeholder = 'নতুন ইনপুট';
        container.appendChild(input);
    }
</script>

ফর্মের ডেটা স্টোরেজ

ফর্মের ডেটা স্থানীয়ভাবে বা ব্রাউজারে স্টোরেজ করতে জাভাস্ক্রিপ্ট ব্যবহার করা যায়।

লোকালস্টোরেজ (LocalStorage)

লোকালস্টোরেজ ব্যবহার করে ডেটা ব্রাউজারে স্টোর করা যায় যা ব্রাউজার বন্ধ করলেও থাকে।

<form id="saveForm">
    <input type="text" id="dataInput" name="dataInput" placeholder="ডেটা লিখুন" required>
    <button type="submit">সেভ করুন</button>
</form>

<script>
    const saveForm = document.getElementById('saveForm');

    saveForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const data = document.getElementById('dataInput').value;
        localStorage.setItem('savedData', data);

        alert('ডেটা সেভ করা হয়েছে!');
    });

    // পেজ লোড হলে ডেটা লোড করা
    window.addEventListener('load', function() {
        const savedData = localStorage.getItem('savedData');
        if (savedData) {
            document.getElementById('dataInput').value = savedData;
        }
    });
</script>

সেশনস্টোরেজ (SessionStorage)

সেশনস্টোরেজ ব্যবহার করে ডেটা ব্রাউজার সেশন পর্যন্ত স্টোর করা যায়, যা ব্রাউজার ট্যাব বন্ধ করলে মুছে যায়।

<form id="sessionForm">
    <input type="text" id="sessionData" name="sessionData" placeholder="সেশন ডেটা লিখুন" required>
    <button type="submit">সেভ করুন</button>
</form>

<script>
    const sessionForm = document.getElementById('sessionForm');

    sessionForm.addEventListener('submit', function(event) {
        event.preventDefault();

        const data = document.getElementById('sessionData').value;
        sessionStorage.setItem('sessionData', data);

        alert('সেশন ডেটা সেভ করা হয়েছে!');
    });

    // পেজ লোড হলে সেশন ডেটা লোড করা
    window.addEventListener('load', function() {
        const sessionData = sessionStorage.getItem('sessionData');
        if (sessionData) {
            document.getElementById('sessionData').value = sessionData;
        }
    });
</script>

রিয়্যাক্টিভ ফর্ম (Reactive Forms)

জাভাস্ক্রিপ্ট ফর্মের সাথে ইন্টারঅ্যাক্ট করে রিয়্যাক্টিভ ফর্ম তৈরি করা যায়, যেখানে ইনপুটের পরিবর্তনের সাথে সাথে ডেটা আপডেট হয়।

<form id="reactiveForm">
    <input type="text" id="firstName" name="firstName" placeholder="প্রথম নাম" required>
    <input type="text" id="lastName" name="lastName" placeholder="শেষ নাম" required>
    <p>আপনার পূর্ণ নাম: <span id="fullName"></span></p>
</form>

<script>
    const firstNameInput = document.getElementById('firstName');
    const lastNameInput = document.getElementById('lastName');
    const fullNameDisplay = document.getElementById('fullName');

    function updateFullName() {
        const firstName = firstNameInput.value.trim();
        const lastName = lastNameInput.value.trim();
        fullNameDisplay.textContent = `${firstName} ${lastName}`;
    }

    firstNameInput.addEventListener('input', updateFullName);
    lastNameInput.addEventListener('input', updateFullName);
</script>

সারাংশ

জাভাস্ক্রিপ্ট ফর্ম হলো ওয়েব ডেভেলপমেন্টে একটি গুরুত্বপূর্ণ উপাদান যা ব্যবহারকারীর কাছ থেকে তথ্য সংগ্রহ করে। ফর্মের বিভিন্ন ইনপুট এলিমেন্ট, ফর্ম ইভেন্ট হ্যান্ডলিং, ইনপুট ভ্যালিডেশন, AJAX ব্যবহার করে ডেটা সাবমিট করা, এবং ডেটা স্টোরেজের মাধ্যমে ফর্ম ডেটাকে কার্যকরভাবে প্রক্রিয়াজাত করা যায়। ফর্ম ডিবাগিং এবং নিরাপত্তা নিশ্চিত করতে ক্লায়েন্ট-সাইড ও সার্ভার-সাইড ভ্যালিডেশন গুরুত্বপূর্ণ। রিয়্যাক্টিভ ফর্ম তৈরি করে ফর্মের সাথে আরও ইন্টারঅ্যাকটিভ এবং ইউজার ফ্রেন্ডলি অভিজ্ঞতা প্রদান করা সম্ভব। সঠিকভাবে ফর্ম পরিচালনা করলে ওয়েব অ্যাপ্লিকেশন আরও কার্যকর, নিরাপদ এবং ব্যবহারকারীর জন্য সহজ হয়।

ফর্ম ব্যবহারে জাভাস্ক্রিপ্টের দক্ষতা অর্জন করে আপনি আরও উন্নত এবং নির্ভরযোগ্য ওয়েব অ্যাপ্লিকেশন তৈরি করতে সক্ষম হবেন, যা ব্যবহারকারীদের জন্য মসৃণ এবং সুষ্ঠু অভিজ্ঞতা প্রদান করে।

টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion
;